const red = require('../db/connections/redis_connect');

/* 保存函数*/
function redisSet (key, value, timeout = 60 * 60) {
	//设置超时事件为一个小时
	//key value 是数据键值对
	if(typeof (value) === 'object') {
		value = JSON.stringify(value);
	}
	//保存
	red.set(key, value);
	//设置过期时间
	red.expire(key, timeout);
}

function redisGet (key) {
	return new Promise((resolve, reject) => {
		red.get(key, (err, value) => {
			if(err) {
				reject(err);
				return;
			}
			
			if(value == null) {
				resolve(null);
				return;
			}
			//有可能是JSON字符串，解析一下
			//try捕获不是JSON字符串的情况
			try {
				resolve(JSON.parse(value));  //解析json字符串情况
			}catch (err) {
				resolve(value);  //不是JSON的情况
			}
		})
	})
}

module.exports = {
	redisSet,
	redisGet
}